package com.useage.day04;

import org.aspectj.lang.ProceedingJoinPoint;
import org.springframework.stereotype.Component;

@Component
public class User {
	
	public void checkLogin() {
		System.out.println("检查用户是否登录");
	}
	
	
	// 环绕函数
	//   ProceedingJoinPoint p  
	//        是 Spring在调用这个切面程序的时候，自动传递过来的1个对象
	//             里面包含了目标函数的一些信息
	public void doRound(ProceedingJoinPoint p) throws Throwable {
		System.out.println("环绕函数执行");
		
		Object[] pram = p.getArgs();

		System.out.println("目标函数的参数：" + pram);
		System.out.println("目标函数的名字：" + p.getSignature());
		
		// 获取切入点对象
		Object target = p.getTarget();

		System.out.println("目标函数的调用对象：" + target);
		
		
		// 让目标函数执行
		p.proceed(pram);
		
		
		System.out.println("环绕函数结束");
		
	}
	
}
